Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Questo topic è stato chiuso dal moderatore Ciao a tutti. Piccolo problemino con Linq. Ho letto un po' la guida di Totem, ma.. non c'ho capito molto. Comunque, ho un dictionary di String e Boolean. Dopo aver caricato il mio dictionary con i vari item ho la necessità di sapere quanti Item hanno Value = true. La cosa si può fare facilmente con un bel for Each e un contattore, ma così ho la scusa per usare Linq.. (o almeno provarci).
In rete ho trovato questo codice, che ho un po riadattato a tentativi:
Codice sorgente - presumibilmente VB.NET |
Dim query = From MyDictionary In MyDictionary.Values Group By c Into grouping = Group _ Order By c Select New With {.condizione = True, .Count = grouping.Count()}
|
Qualcuno mi può spiegare come funziona? Se poi volessi convertire il valore di query in byte, che tanto so che è un numero piccolo? Grazie
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
secondo me ti stai complicando la vita, credo basti un
Codice sorgente - presumibilmente C# / VB.NET |
Dim count As Integer = MyDictionary.Count(Function(item) item.Value)
|
|
|
Renny (Normal User)
Expert
Messaggi: 231
Iscritto: 30/07/2011
|
Ciao, grazie.. Avevo anche io l'impressione che quel pezzo di codice facesse qualcosa in più di una semplice verifica e conteggio.. Ma se ci mettevo le mani poi mi dava errore.. Comunque, per completare, metto il codice "corretto":
Codice sorgente - presumibilmente C# / VB.NET |
Dim cont As Byte = CByte(MyDictiornary.LongCount(Function(item) item.Value = True))
|
Bisogna usare l'extention LongCount perchè il "count" normale dei dictionary non ha overloads.
Grazie ancora!
|
|